﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SAAC.DTO;
using SAAC.BLL;
using System.Transactions;

namespace SAAC.Aluno
{
    public partial class Cadastro01 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            gerenciaVisibilidadeComponentesMaster();
            if (!IsPostBack)
            {

               
                carregarDropDownCurso();

            }

        }

        private void carregarDropDownCurso()
        {
            var curso = new CursoDTO();
            var bllCurso = new CursoBLL();
            var listaCurso = new List<CursoDTO>();
            listaCurso = bllCurso.SelectAll(curso);
            ddlCurso.DataValueField = "Id";
            ddlCurso.DataTextField = "Nome";
            ddlCurso.DataSource = listaCurso;
            ddlCurso.DataBind();
        
        }
        protected void btnCadastrar_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtSenha.Text != txtConfirmaSenha.Text)
               
                    lblMensagem.Text = "Senhas não conferem, informe novamente.";
               
				if (txtSenha.Text == txtConfirmaSenha.Text)
				{
					using (TransactionScope scope = new TransactionScope())
					{
						var bllUsuario = new UsuarioBLL();
						var usuario = new UsuarioDTO();
						usuario.Login = txtUsuario.Text;
						usuario.Senha = txtSenha.Text;
						//Usuário é do tipo Aluno
						usuario.TipoUsuario = new TipoUsuarioDTO();
						usuario.TipoUsuario.Id = (int)ETipoUsuario.Aluno;
						bllUsuario.Insert(usuario);
						usuario = bllUsuario.Select(usuario);

						var bllAluno = new AlunoBLL();
						var aluno = new AlunoDTO();
						aluno.Curso = new CursoDTO();
						aluno.Usuario = new UsuarioDTO();

						aluno.Matricula = Convert.ToInt32(txtMatricula.Text);
						aluno.Nome = txtNome.Text;
						aluno.SemestreIngresso = txtSemestre.Text;
						aluno.Curriculo = txtCurriculo.Text;
						aluno.Curso.Id = Convert.ToInt32(ddlCurso.SelectedItem.Value);
						aluno.Usuario.Id = usuario.Id;
						bllAluno.Insert(aluno);
						scope.Complete();
					}
                    lblMensagem.Text = "Cadastrado com sucesso!.";
				}

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void gerenciaVisibilidadeComponentesMaster()
        {
            Menu menuAluno = (Menu)Master.FindControl("MenuAluno");
            menuAluno.Visible = false;
            LinkButton lkbSair = (LinkButton)Master.FindControl("lkbSair");
            lkbSair.Visible = false;
            Menu menuFuncionario = (Menu)Master.FindControl("MenuFuncionario");
            menuFuncionario.Visible = false;
            Menu menuProfessor = (Menu)Master.FindControl("MenuProfessor");
            menuProfessor.Visible = false;
            Menu menuColegiado = (Menu)Master.FindControl("MenuColegiado");
            menuColegiado.Visible = false;

            LinkButton link = (LinkButton)Master.FindControl("lkbCadastro");
            link.Visible = false;
        }

        protected void btnVoltar_Click(object sender, EventArgs e)
        {
            Response.Redirect("/Default.aspx");
            
        }
    }
}